昨天在部署時遇到了兩個問題導致頻頻失敗
audioop 模塊在 Render 的 Python 環境中缺失
audioop 是 Python 的標準庫模塊,而問題可能出在於我使用到較舊版本的 discord.py 版本,但經果我多次的修改及嘗試都沒有解決,因此最後決定拿掉語音功能,剛好原本設計的bot就沒有需要此功能
因此我在程式碼中添加以下段落:
import os
os.environ["DISCORD_INSTANCE_NO_VOICE"] = "true"
import discord
from discord.ext import commands
端口的缺失
這個問題是由於我選用的是Web Service部署的服務(只有這個是免費的),而這通常需要端口,我其實應該選用的是Background Worker,但就要付費,因此我採取的措施是添加端口監聽
Step 1:在Render上設置環境變量的位置
點擊environment
Step 2: 點擊 "Add Environment Variable" 按鈕添加變數
Step 3: 在程式碼中添加簡單的端口監聽
Step 4:在requirements.txt中添加flask依賴
flask>=2.3.0
Step 5 : 接著在本地先測試看看程式碼是否可以運行
python bot.py
接著就可以提交到github並render會自動開始部署
這樣就大功告成了,但這個做法有點風險在,日後再嘗試其他更保險的方式,目前暫時先依靠這個方式讓BOT上線